#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
HAR文件转换命令
"""

import os
from argparse import Namespace

from ..core.har_to_api_file import Har2ApiUtil
from ..core.logger import Log
from ..core.emoji_utils import EmojiUtils
from ..core.project_path import config as path_config


class HarConverterCommand:
    """
    HAR文件转换为API文件的命令处理器
    """

    def __init__(self):
        self.log = Log()

    def execute(self, args: Namespace) -> int:
        """
        执行HAR转换命令
        
        Args:
            args: 命令行参数
            
        Returns:
            int: 退出码，0表示成功，非0表示失败
        """
        try:
            # 检查HAR文件是否存在
            if not os.path.exists(args.har_file):
                self.log.error(f"HAR文件不存在: {args.har_file}")
                return 1

            # 确定输出目录
            output_dir = args.output or path_config.api_dir

            # 如果是自定义输出目录，确保目录存在
            if args.output:
                os.makedirs(output_dir, exist_ok=True)

            self.log.info(f"开始转换HAR文件: {args.har_file}")
            self.log.info(f"输出目录: {output_dir}")

            # 执行转换
            converter = Har2ApiUtil()
            result = converter.har2api(
                args.har_file,
                output_dir,
                getattr(args, 'class_prefix', ''),
                getattr(args, 'class_suffix', 'Api')
            )

            if result.returncode == 0:
                self.log.success("HAR文件转换完成!")
                self.log.info(f"生成的API文件保存在: {output_dir}")
                return 0
            else:
                self.log.error("HAR文件转换失败")
                return result.returncode

        except Exception as e:
            self.log.error(f"转换过程中发生错误: {e}")
            return 1
